var alltds = document.querySelectorAll("#board2 td");
//找到所以红色的td

var turn = "black";

var round = document.getElementById("round");

var finish = false;

var his = [];

function tdClick(e){
    if(finish){
        return;
    }
    var td = e.target;

    var side = td.getAttribute("chess");
    if(side){
        return;
    }

    td.setAttribute("chess",turn);

    winCheck(e.target.index);

    if(turn=="black"){
        turn = "white";
        round.textContent = "白方回合";
    }else{
        turn = "black";
        round.textContent = "黑方回合";
    }
    his.push(e.target);
    
}
//td的点击事件函数

for(var i = 0;i<alltds.length;i++){
    alltds[i].onclick = tdClick;

    alltds[i].index = i;
}

function back(){
    finish = false;
    if(his.length>0){
        var td = his.pop();
        td.removeAttribute("chess");
        // turn = turn =="black"?"white":"black";
        if(turn=="black"){
            turn = "white";
            round.textContent = "白方回合";
        }else{
            turn = "black";
            round.textContent = "黑方回合";
    }
    }
}
function restart(){
    window.location.reload();
}
function winCheck(index){
    if(horizontalCheck(index)||verticalCheck(index)||
      tlbrCheck(index)||trblCheck(index)){
        finish = true;
        alert((turn=="black"?"黑":"白")+"方胜利");
    }
} 
    
//检查横向
function horizontalCheck(index){
    var num = 1;
    var currentIndex = index;
    var hasNext = currentIndex%19!=0&&alltds
    [currentIndex-1].getAttribute("chess")==turn;

    while(hasNext){
        num++;
        currentIndex--;
        hasNext = currentIndex%19!=0&&alltds
        [currentIndex-1].getAttribute("chess")==turn;
    }
 //.........................................................
    var currentIndex = index;
    var hasNext = currentIndex%19!=18&&alltds
    [currentIndex+1].getAttribute("chess")==turn;

    while(hasNext){
        num++;
        currentIndex++;
        hasNext = currentIndex%19!=18&&alltds
        [currentIndex+1].getAttribute("chess")==turn;
    }
    //...........................................
    return num>=5;
}
   
   //检查纵向
function verticalCheck(index){
    var num = 1;
    var currentIndex = index;
    var hasNext = currentIndex>=19&&alltds
    [currentIndex-19].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=19;
        hasNext = currentIndex>=19&&alltds
        [currentIndex-19].getAttribute("chess")==turn;
    }
 //.........................................................
    var currentIndex = index;
    var hasNext = currentIndex<342&&alltds
    [currentIndex+19].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex+=19;
        hasNext = currentIndex<342&&alltds
        [currentIndex+19].getAttribute("chess")==turn;
    }
    //...........................................
    return num>=5;
}

//从左上到右下的检查
function tlbrCheck(index){
    var num = 1;
    var currentIndex = index;
    var hasNext = currentIndex%19!=0&&currentIndex>=19&&alltds
    [currentIndex-20].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=20;
        hasNext = currentIndex%19!=0&&currentIndex>=19&&alltds
        [currentIndex-20].getAttribute("chess")==turn;
    }
 //.........................................................
    var currentIndex = index;
    var hasNext = currentIndex<342&&currentIndex%19!=18&&alltds
    [currentIndex+20].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex+=20;
        hasNext = currentIndex<342&&currentIndex%19!=18&&alltds
        [currentIndex+20].getAttribute("chess")==turn;
    }
    //...........................................
    return num>=5;
}

//从右上到左下的检查
function trblCheck(index){
    var num = 1;
    var currentIndex = index;
    var hasNext = currentIndex%19!=18&&currentIndex>=19&&alltds
    [currentIndex-18].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=18;
        hasNext = currentIndex%19!=18&&currentIndex>=19&&alltds
        [currentIndex-18].getAttribute("chess")==turn;
    }
 //.........................................................
    var currentIndex = index;
    var hasNext = currentIndex<342&&currentIndex%19!=0&&alltds
    [currentIndex+18].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex+=18;
        hasNext = currentIndex<342&&currentIndex%19!=0&&alltds
        [currentIndex+18].getAttribute("chess")==turn;
    }
    //...........................................
    return num>=5;
}